<?php
namespace Admin\Controller;
use Think\Controller;
Vendor('Filehuancun.Filehuancun');//Vendor 引入Filehuancun目录下的Filehuancun命名空间
Vendor('ExcleInOut.ExcleInOut');//Vendor 引入ExcleInOut目录下的ExcleInOut命名空间


class KcglController extends Controller {
	public function deldir($path){
		// 如果是目录则继续
		if (is_dir ( $path )) {
			// 扫描一个文件夹内的所有文件夹和文件并返回数组
			$p = scandir ( $path );
			foreach ( $p as $val ) {
				// 排除目录中的.和..
				if ($val != "." && $val != "..") {
					// 如果是目录则递归子目录，继续操作
					if (is_dir ( $path . $val )) {
						// 子目录中操作删除文件夹和文件
						$this->deldir ( $path . $val . '/' );
						// 目录清空后删除空文件夹
						@rmdir ( $path . $val . '/' );
					} else {
						// 如果是文件直接删除
						unlink ( $path . $val );
					}
				}
			}
		}
	}
	public function ceshi()//ajax测试方法
	{
		//$name1 ='ThinkPHP11111111111';
		//session('wwf',$name1);
		$sess_auth = session('auth');
		echo $sess_auth['per'];
	}
	public function index() {
	 	//$this->assign('wwfarr1',$temp1);
	 	//echo $this->assign('arr1');
	    $sess_auth = session('auth');
		if($sess_auth)
		{
	    $this->assign('user',$sess_auth['user']);
		$this->display();//echo 输出和assign要在这个这个函数之前设置完成。
		}
	} 
	public function ajaxdpbm1()
	{
	
		$user1 = M('xxxxdpbm');
	
	
		$sjkTemp1=$user1->select();//后期这里要按照条件筛选
	
	
		//二维数组转换字符串
		$temp1="";
	
		for($i=0;$i<count($sjkTemp1);$i++)
		{
		$temp1=$temp1.$sjkTemp1[$i][dpmc].",";
		}
			
	
		//去除最后一个字符
		$temp1=substr ( $temp1, 0, - 1 );
	
		//打包字符串 用ajax返回。
		echo $temp1;
	}
	
	public function ajaxdppccx()
	{
	
		$today  =  date ( "Y-m-d" );//当天 计算当天（包含当天）的前的全部入库和出库。	   
		
		$userrk = M('xxxxrkb');
		$userck = M('xxxxckb');
		$userdp = M('xxxxdpbm');
		
		$mapjzrqs['rkrq'] =array('elt', $today);//入库日期
		$mapjzrqe['ckrq'] =array('elt', $today);//出库日期
			
		
		$sjkTemp1=$userrk->where($mapjzrqs)->select();
		$sjkTemp2=$userck->where($mapjzrqe)->select();
		$sjkTemp3=$userdp->select();
		//去除订单编码的重复项，并排序。
		
	   //var_dump($sjkTemp1);
	   //库存标记数组。单品+批次。
	   $arrtemp1=array();//入库	   
       $arrtempjs=0;
	   for($ii = 0; $ii < count ( $sjkTemp1 ); $ii ++) {	 
	   	    if($sjkTemp1[$ii][jzfhbj]!="禁止发货"){
	   	    	$arrtemp1[$arrtempjs]=$sjkTemp1[$ii][dpmc]."+".$sjkTemp1[$ii][rkdppc];
	   	    	$arrtempjs=$arrtempjs+1;
	   	    }else {
	   	    	$arrtemp1[$arrtempjs]=$sjkTemp1[$ii][dpmc]."+".$sjkTemp1[$ii][rkdppc]."+".$sjkTemp1[$ii][rkrq]."+".$sjkTemp1[$ii][jzfhbj];
	   	    	$arrtempjs=$arrtempjs+1;
	   	    }
	     
	   }	   
	   //var_dump($arrtemp1);	
	      
	   $arrtemp2=array();//出库	   
	   $arrtempjs=0;
	   for($ii = 0; $ii < count ( $sjkTemp2 ); $ii ++) {
	   	 
	   	$arrtemp2[$arrtempjs]=$sjkTemp2[$ii][pinming]."+".$sjkTemp2[$ii][ckpc];
	   	$arrtempjs=$arrtempjs+1;
	   }
	   //var_dump($arrtemp2);
	   
	   //合并数组
	   $newarr = array_merge($arrtemp1, $arrtemp2);	 
	   //var_dump($newarr);
	   //去除重复项
	   $arrddbmaa=  array_unique ( $newarr );	   
	   //sort 有排序功能。
	   sort ( $arrddbmaa );
	   //var_dump($arrddbmaa);
	   //重新按 + 号分隔数组。
	   $dppcarr=array();
	   for($ia = 0; $ia < count ( $arrddbmaa ); $ia ++) {	 	   	  	   	
	   	$temp=explode('+',$arrddbmaa[$ia]);	 
	    //echo count($temp);//按单品是否为 禁止发货 确定不同的组合方式。 如果只有两项则 将 禁止发货标记和其入库日期标记为空。
	    if(count($temp)==2){
	 	    $dppcarr[$ia]["pinming"]=$temp[0];
	 	    $dppcarr[$ia]["pici"]=$temp[1];
	 	    $dppcarr[$ia]["jzrkrq"]="";
	 	    $dppcarr[$ia]["jzfhbj"]="";
	    }else{
	    	$dppcarr[$ia]["pinming"]=$temp[0];
	    	$dppcarr[$ia]["pici"]=$temp[1];
	    	$dppcarr[$ia]["jzrkrq"]=$temp[2];
	    	$dppcarr[$ia]["jzfhbj"]=$temp[3];
	    }
	   }	
	   //var_dump($dppcarr);
	   //echo count($dppcarr[1]);//按标记的元素数目 做不通
	   //生成最终的入库出库数据 生成库存和虚拟库存。
	   $zzsj=array();	   
	   
	   //赋予单品属性
	   for($aa = 0; $aa < count ( $dppcarr ); $aa ++) {
	   	for($bb = 0; $bb < count ( $sjkTemp3 ); $bb ++) {
	   		
	   		if($dppcarr[$aa]["pinming"]==$sjkTemp3[$bb]["dpmc"]){
	   			$zzsj[$aa]["pinming"]= $dppcarr[$aa]["pinming"];
	   			$zzsj[$aa]["pici"]=$dppcarr[$aa]["pici"];
	   			$zzsj[$aa]["jzrkrq"]= $dppcarr[$aa]["jzrkrq"];
	   			$zzsj[$aa]["jzfhbj"]=$dppcarr[$aa]["jzfhbj"];
	   			$zzsj[$aa]["hpbm"]=$sjkTemp3[$bb]["hpbm"];
	   			$zzsj[$aa]["sptm"]=$sjkTemp3[$bb]["sptm"];
	   			$zzsj[$aa]["dpgg"]=$sjkTemp3[$bb]["dpgg"];
	   			$zzsj[$aa]["djzlkg"]=$sjkTemp3[$bb]["djzlkg"];
	   			$zzsj[$aa]["dpbzq"]=$sjkTemp3[$bb]["dpbzq"];
	   			$zzsj[$aa]["hwlx"]=$sjkTemp3[$bb]["hwlx"];
	   			break;
	   		}
	   		 
	   	}
	   }
	   //echo count($zzsj[1]);//按标记的元素数目 做不通
	   //加一个变量 保存 赋予属性后的品名+批次数组。
	   //$arrpmjpcsj=$zzsj;
	   //session ('arrpmjpcsj' , $arrpmjpcsj); 
	   //计算单品+品名的 入库件数。
	   for($aa = 0; $aa < count ( $zzsj ); $aa ++) {
	   	$tempjsjs=0;
	   	//缓存变量
	   	$dpkwtemp="";
	   	$dpsffh="";
	     	for($bb = 0; $bb < count ( $sjkTemp1 ); $bb ++) {
	     			     		      		
	     		//读取正常发货单品 数目。
	     		if($zzsj[$aa]["pinming"]==$sjkTemp1[$bb]["dpmc"]&&$zzsj[$aa]["pici"]==$sjkTemp1[$bb]["rkdppc"]&&$sjkTemp1[$bb]["jzfhbj"]!="禁止发货"&&$zzsj[$aa]["jzfhbj"]==""){	     			
	     			$tempjsjs=$tempjsjs+$sjkTemp1[$bb]["rksl"];
	     			//合并 如果库位不为空则合并
	     			if($sjkTemp1[$bb]["dpkw"]!=""){
	     				$dpkwtemp=$dpkwtemp.$sjkTemp1[$bb]["dpkw"]."/";
	     			}
	     			
	     		}
	     		//读取 禁止发货 单品的数目品名 批次 当前入库行是禁止发货 标记为禁止发货 禁止发货单品入库日期和入库日期一致。
	     		if($zzsj[$aa]["pinming"]==$sjkTemp1[$bb]["dpmc"]&&$zzsj[$aa]["pici"]==$sjkTemp1[$bb]["rkdppc"]&&$sjkTemp1[$bb]["jzfhbj"]=="禁止发货"&&$zzsj[$aa]["jzfhbj"]=="禁止发货"&&$zzsj[$aa]["jzrkrq"]==$sjkTemp1[$bb]["rkrq"]){
	     			$tempjsjs=$tempjsjs+$sjkTemp1[$bb]["rksl"];
	     			//合并 如果库位不为空则合并
	     			if($sjkTemp1[$bb]["dpkw"]!=""){
	     				$dpkwtemp=$dpkwtemp.$sjkTemp1[$bb]["dpkw"]."/";
	     			}
	     			 
	     		}
	     			     		
	   	    }	
	   	 ///////////////////////////////////////////
	   	  //库位合并 
	   	  if ($dpkwtemp!=""){
	   	  	$kwhbarr= substr($dpkwtemp, 0, -1);
	   	  }else{
	   	  	$kwhbarr= "无库位";
	   	  }	   		   	  
	   	 $zzsj[$aa]["kwhb"]=$kwhbarr;
	   	 ///////////////////////////////////////////
	   	 $zzsj[$aa]["rksl"]=$tempjsjs;
	   }
	   
	   //计算单品+品名的 出库件数分为虚拟和真实。
	    for($aa = 0; $aa < count ( $zzsj ); $aa ++) {
	   
	   	$tempjsjs1=0;
	   	$tempjsjs2=0;
	   	if($zzsj[$aa]["jzfhbj"]!="禁止发货"){
	   	for($bb = 0; $bb < count ( $sjkTemp2 ); $bb ++) {
	       
	   		//虚拟库存 计算  只要订单不作废 就计算 
	   		if($zzsj[$aa]["pinming"]==$sjkTemp2[$bb]["pinming"]&&$zzsj[$aa]["pici"]==$sjkTemp2[$bb]["ckpc"]&&$sjkTemp2[$bb]["ddzfbj"]!="已作废"){
	   			$tempjsjs1=$tempjsjs1+$sjkTemp2[$bb]["shjs"];
	   		  }
	   		
	   		
	   		//真实库存 计算  只要订单不作废 已过账  就计算
	   		if($zzsj[$aa]["pinming"]==$sjkTemp2[$bb]["pinming"]&&$zzsj[$aa]["pici"]==$sjkTemp2[$bb]["ckpc"]&&$sjkTemp2[$bb]["ddzfbj"]!="已作废"&&$sjkTemp2[$bb]["gzbj"]=="已过账"){
	   			$tempjsjs2=$tempjsjs2+$sjkTemp2[$bb]["shjs"];
	   		  }
	        }
	   	}
	   
	   	$zzsj[$aa]["xnkc"]=(string)($zzsj[$aa]["rksl"]-$tempjsjs1);
	   	$zzsj[$aa]["zskc"]=(string)($zzsj[$aa]["rksl"]-$tempjsjs2);
	   	
	    $zzsj[$aa]["xnsm"]=(string)$tempjsjs1;
	   	$zzsj[$aa]["gzsm"]=(string)$tempjsjs2;
	   }
	   //var_dump($zzsj); 
	  
	  echo  json_encode ( $zzsj ,JSON_UNESCAPED_UNICODE );
		
	}
	
	public function ajaxdppccxarq()
	{
	
		$temp1 = $_POST["arr1"];//截止日期
		$temp2 = $_POST["arr2"];//单品名称
		$temp3 = $_POST["arr3"];//单品类型
	  
		$today  =  date ( "Y-m-d" );//当天 计算当天（包含当天）的前的全部入库和出库。	   
		
		$userrk = M('xxxxrkb');
		$userck = M('xxxxckb');
		$userdp = M('xxxxdpbm');
		
		$mapjzrqs['rkrq'] =array('elt', $temp1);//入库日期
		
		switch($temp2)
		{
			case "全部" :
				{
					break;
				}
		
			default :
				{
					$mapjzrqs['dpmc'] =$temp2;
					break;
				}
		
		}
		switch($temp3)
		{
			case "全部" :
				{
					break;
				}
		
			default :
				{
					$mapjzrqs['hwlx'] =$temp3;
					break;
				}
		
		}	
	
		
		$mapjzrqe['ckrq'] =array('elt', $temp1);//出库日期
		switch($temp2)
		{
			case "全部" :
				{
					break;
				}
		
			default :
				{
					$mapjzrqs['pinming'] =$temp2;
					break;
				}
		
		}
		switch($temp3)
		{
			case "全部" :
				{
					break;
				}
		
			default :
				{
					$mapjzrqs['hwlx'] =$temp3;
					break;
				}
		
		}
		
			
		
		$sjkTemp1=$userrk->where($mapjzrqs)->select();
		$sjkTemp2=$userck->where($mapjzrqe)->select();
		$sjkTemp3=$userdp->select();
		//去除订单编码的重复项，并排序。
		
		//var_dump($sjkTemp1);
		//库存标记数组。单品+批次。
		$arrtemp1=array();//入库
		$arrtempjs=0;
		for($ii = 0; $ii < count ( $sjkTemp1 ); $ii ++) {
			if($sjkTemp1[$ii][jzfhbj]!="禁止发货"){
				$arrtemp1[$arrtempjs]=$sjkTemp1[$ii][dpmc]."+".$sjkTemp1[$ii][rkdppc];
				$arrtempjs=$arrtempjs+1;
			}else {
				$arrtemp1[$arrtempjs]=$sjkTemp1[$ii][dpmc]."+".$sjkTemp1[$ii][rkdppc]."+".$sjkTemp1[$ii][rkrq]."+".$sjkTemp1[$ii][jzfhbj];
				$arrtempjs=$arrtempjs+1;
			}
		
		}
		//var_dump($arrtemp1);
		 
		$arrtemp2=array();//出库
		$arrtempjs=0;
		for($ii = 0; $ii < count ( $sjkTemp2 ); $ii ++) {
		
			$arrtemp2[$arrtempjs]=$sjkTemp2[$ii][pinming]."+".$sjkTemp2[$ii][ckpc];
			$arrtempjs=$arrtempjs+1;
		}
		//var_dump($arrtemp2);
		
		//合并数组
		$newarr = array_merge($arrtemp1, $arrtemp2);
		//var_dump($newarr);
		//去除重复项
		$arrddbmaa=  array_unique ( $newarr );
		//sort 有排序功能。
		sort ( $arrddbmaa );
		//var_dump($arrddbmaa);
		//重新按 + 号分隔数组。
		$dppcarr=array();
		for($ia = 0; $ia < count ( $arrddbmaa ); $ia ++) {
			$temp=explode('+',$arrddbmaa[$ia]);
			//echo count($temp);//按单品是否为 禁止发货 确定不同的组合方式。 如果只有两项则 将 禁止发货标记和其入库日期标记为空。
			if(count($temp)==2){
				$dppcarr[$ia]["pinming"]=$temp[0];
				$dppcarr[$ia]["pici"]=$temp[1];
				$dppcarr[$ia]["jzrkrq"]="";
				$dppcarr[$ia]["jzfhbj"]="";
			}else{
				$dppcarr[$ia]["pinming"]=$temp[0];
				$dppcarr[$ia]["pici"]=$temp[1];
				$dppcarr[$ia]["jzrkrq"]=$temp[2];
				$dppcarr[$ia]["jzfhbj"]=$temp[3];
			}
		}
		//var_dump($dppcarr);
		//echo count($dppcarr[1]);//按标记的元素数目 做不通
		//生成最终的入库出库数据 生成库存和虚拟库存。
		$zzsj=array();
		
		//赋予单品属性
		for($aa = 0; $aa < count ( $dppcarr ); $aa ++) {
			for($bb = 0; $bb < count ( $sjkTemp3 ); $bb ++) {
		
				if($dppcarr[$aa]["pinming"]==$sjkTemp3[$bb]["dpmc"]){
					$zzsj[$aa]["pinming"]= $dppcarr[$aa]["pinming"];
					$zzsj[$aa]["pici"]=$dppcarr[$aa]["pici"];
					$zzsj[$aa]["jzrkrq"]= $dppcarr[$aa]["jzrkrq"];
					$zzsj[$aa]["jzfhbj"]=$dppcarr[$aa]["jzfhbj"];
					$zzsj[$aa]["hpbm"]=$sjkTemp3[$bb]["hpbm"];
					$zzsj[$aa]["sptm"]=$sjkTemp3[$bb]["sptm"];
					$zzsj[$aa]["dpgg"]=$sjkTemp3[$bb]["dpgg"];
					$zzsj[$aa]["djzlkg"]=$sjkTemp3[$bb]["djzlkg"];
					$zzsj[$aa]["dpbzq"]=$sjkTemp3[$bb]["dpbzq"];
					$zzsj[$aa]["hwlx"]=$sjkTemp3[$bb]["hwlx"];
					break;
				}
				 
			}
		}
		//echo count($zzsj[1]);//按标记的元素数目 做不通
		//加一个变量 保存 赋予属性后的品名+批次数组。
		//$arrpmjpcsj=$zzsj;
		//session ('arrpmjpcsj' , $arrpmjpcsj);
		//计算单品+品名的 入库件数。
		for($aa = 0; $aa < count ( $zzsj ); $aa ++) {
			$tempjsjs=0;
			//缓存变量
			$dpkwtemp="";
			$dpsffh="";
			for($bb = 0; $bb < count ( $sjkTemp1 ); $bb ++) {
		
				//读取正常发货单品 数目。
				if($zzsj[$aa]["pinming"]==$sjkTemp1[$bb]["dpmc"]&&$zzsj[$aa]["pici"]==$sjkTemp1[$bb]["rkdppc"]&&$sjkTemp1[$bb]["jzfhbj"]!="禁止发货"&&$zzsj[$aa]["jzfhbj"]==""){
					$tempjsjs=$tempjsjs+$sjkTemp1[$bb]["rksl"];
					//合并 如果库位不为空则合并
					if($sjkTemp1[$bb]["dpkw"]!=""){
						$dpkwtemp=$dpkwtemp.$sjkTemp1[$bb]["dpkw"]."/";
					}
					 
				}
				//读取 禁止发货 单品的数目品名 批次 当前入库行是禁止发货 标记为禁止发货 禁止发货单品入库日期和入库日期一致。
				if($zzsj[$aa]["pinming"]==$sjkTemp1[$bb]["dpmc"]&&$zzsj[$aa]["pici"]==$sjkTemp1[$bb]["rkdppc"]&&$sjkTemp1[$bb]["jzfhbj"]=="禁止发货"&&$zzsj[$aa]["jzfhbj"]=="禁止发货"&&$zzsj[$aa]["jzrkrq"]==$sjkTemp1[$bb]["rkrq"]){
					$tempjsjs=$tempjsjs+$sjkTemp1[$bb]["rksl"];
					//合并 如果库位不为空则合并
					if($sjkTemp1[$bb]["dpkw"]!=""){
						$dpkwtemp=$dpkwtemp.$sjkTemp1[$bb]["dpkw"]."/";
					}
		
				}
		
			}
			///////////////////////////////////////////
			//库位合并
			if ($dpkwtemp!=""){
				$kwhbarr= substr($dpkwtemp, 0, -1);
			}else{
				$kwhbarr= "无库位";
			}
			$zzsj[$aa]["kwhb"]=$kwhbarr;
			///////////////////////////////////////////
			$zzsj[$aa]["rksl"]=$tempjsjs;
		}
		
		//计算单品+品名的 出库件数分为虚拟和真实。
		for($aa = 0; $aa < count ( $zzsj ); $aa ++) {
		
			$tempjsjs1=0;
			$tempjsjs2=0;
			if($zzsj[$aa]["jzfhbj"]!="禁止发货"){
				for($bb = 0; $bb < count ( $sjkTemp2 ); $bb ++) {
		
					//虚拟库存 计算  只要订单不作废 就计算
					if($zzsj[$aa]["pinming"]==$sjkTemp2[$bb]["pinming"]&&$zzsj[$aa]["pici"]==$sjkTemp2[$bb]["ckpc"]&&$sjkTemp2[$bb]["ddzfbj"]!="已作废"){
						$tempjsjs1=$tempjsjs1+$sjkTemp2[$bb]["shjs"];
					}
		
		
					//真实库存 计算  只要订单不作废 已过账  就计算
					if($zzsj[$aa]["pinming"]==$sjkTemp2[$bb]["pinming"]&&$zzsj[$aa]["pici"]==$sjkTemp2[$bb]["ckpc"]&&$sjkTemp2[$bb]["ddzfbj"]!="已作废"&&$sjkTemp2[$bb]["gzbj"]=="已过账"){
						$tempjsjs2=$tempjsjs2+$sjkTemp2[$bb]["shjs"];
					}
				}
			}
		
			$zzsj[$aa]["xnkc"]=(string)($zzsj[$aa]["rksl"]-$tempjsjs1);
			$zzsj[$aa]["zskc"]=(string)($zzsj[$aa]["rksl"]-$tempjsjs2);
			 
			$zzsj[$aa]["xnsm"]=(string)$tempjsjs1;
			$zzsj[$aa]["gzsm"]=(string)$tempjsjs2;
		}
		//var_dump($zzsj);
		 
		echo  json_encode ( $zzsj ,JSON_UNESCAPED_UNICODE );
	
	}
	public function ajaxdppccxarqdp()
	{
	
		$temp1 = $_POST["arr1"];//截止日期
		$temp2 = $_POST["arr2"];//单品名称
		$temp3 = $_POST["arr3"];//单品类型
		 
		$today  =  date ( "Y-m-d" );//当天 计算当天（包含当天）的前的全部入库和出库。
	
		$userrk = M('xxxxrkb');
		$userck = M('xxxxckb');
		$userdp = M('xxxxdpbm');
	
		$mapjzrqs['rkrq'] =array('elt', $temp1);//入库日期
	
		switch($temp2)
		{
			case "全部" :
				{
					break;
				}
	
			default :
				{
					$mapjzrqs['dpmc'] =$temp2;
					break;
				}
	
		}
		switch($temp3)
		{
			case "全部" :
				{
					break;
				}
	
			default :
				{
					$mapjzrqs['hwlx'] =$temp3;
					break;
				}
	
		}
	
	
		$mapjzrqe['ckrq'] =array('elt', $temp1);//出库日期
		switch($temp2)
		{
			case "全部" :
				{
					break;
				}
	
			default :
				{
					$mapjzrqs['pinming'] =$temp2;
					break;
				}
	
		}
		switch($temp3)
		{
			case "全部" :
				{
					break;
				}
	
			default :
				{
					$mapjzrqs['hwlx'] =$temp3;
					break;
				}
	
		}
	
			
	
		$sjkTemp1=$userrk->where($mapjzrqs)->select();
		$sjkTemp2=$userck->where($mapjzrqe)->select();
		$sjkTemp3=$userdp->select();
		//去除订单编码的重复项，并排序。
	
		//var_dump($sjkTemp1);
		//库存标记数组。单品+批次。
		$arrtemp1=array();//入库
		$arrtempjs=0;
		for($ii = 0; $ii < count ( $sjkTemp1 ); $ii ++) {
			 
			$arrtemp1[$arrtempjs]=$sjkTemp1[$ii][dpmc]."+".$sjkTemp1[$ii][rkdppc];
			$arrtempjs=$arrtempjs+1;
		}
		//var_dump($arrtemp1);
		 
		$arrtemp2=array();//出库
		$arrtempjs=0;
		for($ii = 0; $ii < count ( $sjkTemp2 ); $ii ++) {
	
			$arrtemp2[$arrtempjs]=$sjkTemp2[$ii][pinming]."+".$sjkTemp2[$ii][ckpc];
			$arrtempjs=$arrtempjs+1;
		}
		//var_dump($arrtemp2);
	
		//合并数组
		$newarr = array_merge($arrtemp1, $arrtemp2);
		//var_dump($newarr);
		//去除重复项
		$arrddbmaa=  array_unique ( $newarr );
		sort ( $arrddbmaa );
		//var_dump($arrddbmaa);
		//重新按 + 号分隔数组。
		$dppcarr=array();
		for($ia = 0; $ia < count ( $arrddbmaa ); $ia ++) {
			$temp=explode('+',$arrddbmaa[$ia]);
			//var_dump($temp);
			$dppcarr[$ia]["pinming"]=$temp[0];
			$dppcarr[$ia]["pici"]=$temp[1];
		}
		//var_dump($dppcarr);
	
		//生成最终的入库出库数据 生成库存和虚拟库存。
		$zzsj=array();
	
		//赋予单品属性
		//只保存单品去除批次
		for($aa = 0; $aa < count ( $dppcarr ); $aa ++) {
			for($bb = 0; $bb < count ( $sjkTemp3 ); $bb ++) {
	
				if($dppcarr[$aa]["pinming"]==$sjkTemp3[$bb]["dpmc"]){
					$zzsj[$aa]["pinming"]= $dppcarr[$aa]["pinming"];
					$zzsj[$aa]["pici"]="去除批次";
					$zzsj[$aa]["hpbm"]=$sjkTemp3[$bb]["hpbm"];
					$zzsj[$aa]["sptm"]=$sjkTemp3[$bb]["sptm"];
					$zzsj[$aa]["dpgg"]=$sjkTemp3[$bb]["dpgg"];
					$zzsj[$aa]["djzlkg"]=$sjkTemp3[$bb]["djzlkg"];
					$zzsj[$aa]["dpbzq"]=$sjkTemp3[$bb]["dpbzq"];
					$zzsj[$aa]["hwlx"]=$sjkTemp3[$bb]["hwlx"];
				}
		   
			}
		}
		//去除二维数组重复项 不保存id
		function array_unique_fb($array2D){
			foreach ($array2D as $v){
				$v=join(',',$v); //降维,也可以用implode,将一维数组转换为用逗号连接的字符串
				$temp[]=$v;
			}
			$temp=array_unique($temp); //去掉重复的字符串,也就是重复的一维数组
			foreach ($temp as $k => $v){
				$temp[$k]=explode(',',$v); //再将拆开的数组重新组装
			}
			return $temp;
		}
		//去除二维数组重复项 保存id
		function array_unique_fbbc($array2D){
			foreach ($array2D as $k=>$v){
				$v=join(',',$v); //降维,也可以用implode,将一维数组转换为用逗号连接的字符串
				$temp[$k]=$v;
			}
			$temp=array_unique($temp); //去掉重复的字符串,也就是重复的一维数组
			foreach ($temp as $k => $v){
				$array=explode(',',$v); //再将拆开的数组重新组装
				//下面的索引根据自己的情况进行修改即可
				$temp2[$k]['pinming'] =$array[0];
				$temp2[$k]['pici'] =$array[1];
				$temp2[$k]['hpbm'] =$array[2];
				$temp2[$k]['sptm'] =$array[3];
				$temp2[$k]['dpgg'] =$array[4];
				$temp2[$k]['djzlkg'] =$array[5];
				$temp2[$k]['dpbzq'] =$array[6];
				$temp2[$k]['hwlx'] =$array[7];
			}
			return $temp2;
		}
		//去除重复项 序列化
		$newzzsj=  array_unique_fbbc ( $zzsj );
		sort($newzzsj);
		//var_dump($newzzsj);
	
		
		//计算单品+品名的 入库件数。
		 for($aa = 0; $aa < count ( $newzzsj ); $aa ++) {
			$tempjsjs=0;
			//缓存变量
			$dpkwtemp="";
			for($bb = 0; $bb < count ( $sjkTemp1 ); $bb ++) {
	
				//提取单品属性，找到就退出当前循环。
				if($newzzsj[$aa]["pinming"]==$sjkTemp1[$bb]["dpmc"]){
					$tempjsjs=$tempjsjs+$sjkTemp1[$bb]["rksl"];
					//合并 如果库位不为空则合并
					if($sjkTemp1[$bb]["dpkw"]!=""){
						$dpkwtemp=$dpkwtemp.$sjkTemp1[$bb]["dpkw"]."/";
					}
				}
			}
			///////////////////////////////////////////
			//库位合并
			if ($dpkwtemp!=""){
				$kwhbarr= substr($dpkwtemp, 0, -1);
			}else{
				$kwhbarr= "无库位";
			}
			$newzzsj[$aa]["kwhb"]=$kwhbarr;
			///////////////////////////////////////////
			$newzzsj[$aa]["rksl"]=$tempjsjs;
		}
	
		//计算单品+品名的 出库件数分为虚拟和真实。
		for($aa = 0; $aa < count ( $newzzsj ); $aa ++) {
	
			$tempjsjs1=0;
			$tempjsjs2=0;
			for($bb = 0; $bb < count ( $sjkTemp2 ); $bb ++) {
	
				//虚拟库存 计算  只要订单不作废 就计算
				if($newzzsj[$aa]["pinming"]==$sjkTemp2[$bb]["pinming"]&&$sjkTemp2[$bb]["ddzfbj"]!="已作废"){
					$tempjsjs1=$tempjsjs1+$sjkTemp2[$bb]["shjs"];
				}
	
	
				//真实库存 计算  只要订单不作废 已过账  就计算
				if($newzzsj[$aa]["pinming"]==$sjkTemp2[$bb]["pinming"]&&$sjkTemp2[$bb]["ddzfbj"]!="已作废"&&$sjkTemp2[$bb]["gzbj"]=="已过账"){
					$tempjsjs2=$tempjsjs2+$sjkTemp2[$bb]["shjs"];
				}
			}
	
			$newzzsj[$aa]["xnkc"]=(string)($newzzsj[$aa]["rksl"]-$tempjsjs1);
			$newzzsj[$aa]["zskc"]=(string)($newzzsj[$aa]["rksl"]-$tempjsjs2);
		  
			$newzzsj[$aa]["xnsm"]=(string)$tempjsjs1;
			$newzzsj[$aa]["gzsm"]=(string)$tempjsjs2;
		}
		//var_dump($zzsj);
		  
		echo  json_encode ( $newzzsj ,JSON_UNESCAPED_UNICODE );
	
	}
	 
	 
	
	
}

